/**
 * First we will load all of this project's JavaScript dependencies which
 * includes Vue and other libraries. It is a great starting point when
 * building robust, powerful web applications using Vue and Laravel.
 */

require('../bootstrap');
axios.defaults.baseURL = config.baseUrl;

import Toasted from 'vue-toasted'
window.Vue = require('vue');


import VueRouter from 'vue-router';

/**
 * The following block of code may be used to automatically register your
 * Vue components. It will recursively scan this directory for the Vue
 * components and automatically register them with their "basename".
 *
 * Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
 */

// const files = require.context('./', true, /\.vue$/i);
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default));

// Vue.component('example-component', require('../components/ExampleComponent.vue').default);

/**
 * Next, we will create a fresh Vue application instance and attach it to
 * the page. Then, you may begin adding components to this application
 * or customize the JavaScript scaffolding to fit your unique needs.
 */
import CareerSelect from "./views/CareerSelect";
import CareerSkill from "./views/CareerSkill";
import SkillCourse from "./views/SkillCourse";
import Course from "./views/Course";
import UserProfile from "./views/UserProfile";

const routes = [{path: '/', redirect: '/careers/current', name: 'index'}, {
    path: '/careers/current', name: 'career-current', component: CareerSkill
}, {path: '/careers/select', name: 'career-select', component: CareerSelect}, {
    path: '/careers/:career',
    name: 'career-skill',
    component: CareerSkill
}, {
    path: '/skills/:skill',
    name: 'skill-course',
    component: SkillCourse
}, {
    path: '/courses/:course',
    name: 'course',
    component: Course
}, {
    path: '/user/profile',
    name: 'user-profile',
    component: UserProfile
}];
const router = new VueRouter({
    routes
});
Vue.use(VueRouter);
Vue.use(Toasted, {
    theme: 'tree-toast',
    position: 'bottom-right',
    duration: 4000,
})
const app = new Vue({
    router,
    el: '#app',
});
axios.interceptors.response.use(
    response => response,
    error => {
        const { status } = error.response

        // Show the user a 500 error
        // if (status >= 500) {
        //     app.$toasted.error(error.response.data.message);
        // }

        // // Handle Session Timeouts
        // if (status === 401) {
        //     window.location.href = Nova.config.base
        // }

        // Handle Forbidden
        if (status >= 400) {
            app.$toasted.error(error.response.data.message);
        }

        return Promise.reject(error)
    }
)